#ifndef __OLED_H_
#define __OLED_H_	

#include "stdint.h"
#include "i2c.h"

// the I2C address of oled
#define OLED_I2C_ADDRESS    0x78

	
void OLED_init(void);	//OLED_I2C以DMA方式发送初始化数据
	
	void OLED_refresh_gram(void);	//OLED刷新显示
	
	
//void WriteCmd(void);
//向设备写控制命令
//void OLED_WR_CMD(uint8_t cmd);
//向设备写数据
//void OLED_WR_DATA(uint8_t data);
//初始化oled屏幕
void OLED_Init(void);
	//清屏
//void OLED_Clear(void)；
//---------------------------------------------------------------
void OLED_Clear(uint8_t c_16f,uint8_t c_16e);
//清屏size12 size16要清两行，其他函数有类似情况
//c_16f=0,2,4,6
//c_16e:=2,4,6,8
//c_16f<c_16e
//---------------------------------------------------------------

//清行
void OLED_Clearrow(uint8_t i);
//---------------------------------------------------------------
//开启OLED显示    
void OLED_Display_On(void);
//---------------------------------------------------------------
//关闭OLED显示     
void OLED_Display_Off(void);
//---------------------------------------------------------------
//设置光标
void OLED_Set_Pos(uint8_t x, uint8_t y);
//---------------------------------------------------------------
void oled_ccdv(void);//显示CCD采样数据曲线
//---------------------------------------------------------------
void OLED_On(void);

void OLED_ColorTurn(uint8_t i);//反显函数

void OLED_DisplayTurn(uint8_t i);//屏幕旋转180度

void OLED_DrawPoint(uint8_t x,uint8_t y,uint8_t t);

void OLED_Refresh(void);
	

//---------------------------------------------------------------
void OLED_ShowChar(uint8_t x,uint8_t y,uint8_t chr,uint8_t size1,uint8_t mode);
//功能：	在指定位置显示一个字符（写入显存）,包括部分字符
// 		函数参数设置：
//1:		x:0~127
//2:		y:0~63
//3：		chr
//4:		size1:	选择字体 8-->6x8
//											12-->6x12
//											16-->8x16
//											24-->12x24
//5:		mode:	0,反色显示;1,正常显示
//例如：OLED_ShowChar(x,y,chr[j],Char_Size,1);
//---------------------------------------------------------------

//---------------------------------------------------------------
void OLED_ShowNum(uint8_t x,uint8_t y,unsigned int num,uint8_t len,uint8_t size2);
//---------------------------------------------------------------
//					显示2个数字
//---------------------------------------------------------------
//1:		x起点坐标:	0~127
//2:		y起点坐标:	0~63	
//3：		num:	数值(0~4294967295)
//4：		len :	数值num的位数
//5：		size:	字体大小 size2=8，12,16,24
//例如：OLED_ShowNum(24,48,display_buf_8led,4,16);	//显示ad采样值	
//---------------------------------------------------------------

void OLED_ShowString(uint8_t x,uint8_t y,uint8_t *chr,uint8_t Char_Size);
//---------------------------------------------------------------
//				显示一个字符号串
//---------------------------------------------------------------
//1:		x起点坐标:	0~127
//2:		y起点坐标:	0~63	 
//3：		*chr:	字符串
//4：		size:	字体大小 size2=8,12,16,24
//---------------------------------------------------------------

void OLED_ShowChinese(uint8_t x,uint8_t y,uint8_t num,uint8_t size1,uint8_t mode,uint8_t src[]);
//---------------------------------------------------------------
//								显示汉字
//---------------------------------------------------------------
//1:		x起点坐标:	0~127
//2:		y起点坐标:	0~63	 
//3：		num:	汉字在字形数据数组对应的序号
//4			size:	字体大小 size2=16   暂时没有用到这个参数，固定为16
//5：		mode:	0,反色显示;1,正常显示
//6:		src[]:	汉字字体字形数据数组
//	例如：OLED_ShowChinese(8+i*18,0,i,16,1,college[i]);
//显示汉字
//hzk 用取模软件得出的数组
//---------------------------------------------------------------


extern unsigned char aucImageBuf[128]; //存放线性CCD数据的存储器

#endif
